#char husbandry
Explore tagged Tumblr posts
charcorner · 9 months ago
Text
Tumblr media
This may seem like a shitpost, but it's actually one of the best Char husbandry tips out there. Chars need regular exercise and mental stimulation, or else they will get bored and take to making your home basically uninhabitable, by way of knocking things over, causing messes, blowing things up with their MSes, etc.
Be a responsible Char owner and do your research.
33 notes · View notes
sneakydevilship · 6 months ago
Text
Tumblr media
Yippeee Bugsnax fanart!!! @abhorablestuff fuckin redpilled me with this god damn psychological horror puzzle game so now I'm making it everyone else's problem
Green dude is Domblo, my grumpus oc :3
more (+ char ref) under cut
Tumblr media
My little guy :3 Domblo (he/they)
I guess he's the Journalist?? Idk I also think of him as a towns person?
His loves r Beffica and Cromdo, and their hate is Floofty (tho this is less deep-seated and apparent than the other Hate relationships; he just dislikes them very much because they're rude and look down on him and the others) (his opinion of Floofty prolly improves later idk I'll think about it)
He likes painting, music, and is an animal lover :3 he cares for Snax similar to Gramble but only certain types, and he's focused on proper "animal husbandry" with larger pen sizes and such
yes he is into Beffica shut up
29 notes · View notes
the-sword-lesbian · 9 months ago
Note
Thoughts on the Arcadia Gays' Stardew Valley playstyle and who would be Best Girl for each of them?
Allllllright LiS plays Stardew Valley let’s go!
You said Arcadia Gays but I plan to do more as well so let’s get into it!
Chloe: primarily focuses on combat and mining and only really grows enough to cover favors/gifts at first but then gets really into cooking and expands the farming a bit more for ingredience. Favored relationships: Maru because fellow science nerd, Abigail because fellow adventure enthusiast, Penny because she reminds Chloe of Max. Platonic besties with Sam.
Max: terrible at keeping any crops alive so she mostly focuses on exploring, foraging, and some fishing when she gets the hang of it. Favored relationships: Abigail because she reminds Max of Chloe, Penny because she reminds Max of Kate, Sam because skater boys are cute, Leah because aloof artist girl she keeps bumping into in the woods while foraging.
Kate: Animal husbandry out the wazoo. Especially coop animals, especially rabbits. But she adores her chickens, dogs, and cats. Not super good at fishing and a bit too nervous to delve too deep in the mines. Favored relationships: Haley! Because she’s the exact same brand of “I can fix her” pretty artistic meangirl that Kate falls for every time. Penny because she can relate too much to her.
Rachel: Miss “stop at nothing” perfectionist won’t settle for anything less than hundred percenting this game. She does it all and just for the sake of getting everything she romances everyone to be a shit disturber and to get the group events. After unlocking and completing the island she will literally just log into the game and stand on the beach for whole days. Favored Relationships: Abigail because she can really relate to the feelings of being stuck in the mold that your parents want for you. Emily because she’s fun. Leah because she’s hot. Alex because a big dumb cute footballer is fun. Sam because skater boys are cute.
Victoria: playing not just the vanilla game but stardew valley expanded as well. She tries to max out all the questlines and do good at the festivals. Favored romances: Sophia because she can’t not date the cute anime nerd. Olivia because hot MILF. Leah because who wouldn’t? And very specifically NOT Haley because “god who would ever deal with all that negging elitist bs??”
Bonus rounds!!
Courtney: terrifyingly invested in this game. Has more money than you thought the UI would actually show. Beat the whole game and is now in it entirely for the aesthetic builds and collecting every clothing item. Wears a different outfit every day. Favored relationships: none by design but has romanced every romanceable character just to have done it. Gets along best with Emily though.
Taylor: Bought the game because she saw Victoria playing it. Romanced Haley and did nothing else.
Steph: All around consistent player. Likes adventuring the most. Also playing a modded version. Favored relationships: Abigail because she likes the ttrpg and adventuring parts of her character. Leah because she ticks a lot of Steph’s boxes. Emily because she’s fun. She tried to romance Haley but got tired of the negging. Sophia because of course. She also installed a mod that made Sebastian transfemme to romance.
Warren/Lauren: Made a girl character, loves the game but plays in secret. Has romanced 11 out of the 12 dateable characters.
Alex: likes the fishing and adventuring. Has a few animals. Favored relationships: Abigail, Sam, and Seb because fellow musicians/nerds. Penny because she’s just so sweet! Harvey because he’s a nice guy. Emily because she’s so much fun and so positive. She also romanced Leah and it gave her gay feelings about Char so she avoids that romance now.
Riley: one part mining nerd, one part beekeeper. Has grown all the flowers and has a textbook perfect garden/apiary arrangement. Favored relationships: Maru because fellow science and robotics nerd! Abigail and Leah because she thinks they’re both cute.
25 notes · View notes
sm-baby · 2 years ago
Text
teehee... I finally have time to draw! Lovely servant girl!
Tumblr media
Hehehe... she vibin,,, very happy to say that she's compensated for her work, she overall loves her job cuz she's constantly commissioned to do all kinds of things while being able to help people.
her village loved her so much that they all banded to pay her to serve Steve for a whole day 👁👁 she killed it.
MAN... she's very talented... according to Char ai shes..
raised cattle and paultry
husbandry
helps with cooking duty
had nanny duties
cleaning duties
pet/house/baby sitting
weaved clothing out of wool
has helped sheep give birth
gives real good massages
farming
fishing
messenger duty
blacksmithing! (Still trying to master it)!
the only thing she can't do... is math, and directions... this is also why she can't do cartography.
loves her work cuz she sometimes takes jobs to help families who cant afford much,,, very loyal and lovely lady
she also *looks at character ai* is Japanese and has a chabudai
134 notes · View notes
thefertilizermachine · 1 year ago
Text
Organic fertilizer granulator is widely used in various categories
Organic fertilizer granulator can be divided into disc granulator, ball granulator, horizontal granulator, rotary drum granulator, flat die granulator. The working principle of the organic fertilizer granulator is to crush and compress organic fertilizers, such as corn straw, wheat straw, straw and other plant stalks, as well as plant fruit shells such as straw and peanut shells, and finally form organic fertilizer particles that are conducive to preservation and use. For organic manure raw material animal manure and urine, pile retting fertilizer, green fertilizer, sea fertilizer, cake fertilizer, grass char, soil fertilizer, microorganism and other urban domestic waste organic fermentation fertilizer granulation specific, the particles are pellet. Organic fertilizer granulator qualified granulation rate of more than 80-90%, adapt to a variety of different formulations, the compressive strength of organic fertilizer is higher than the disk and drum, the large ball rate is less than 15%, the particle size uniformity can be adjusted according to user requirements through the organic fertilizer granulator stepless speed regulation function. Organic fertilizer granulator is the most widely used fertilizer granulation equipment, advanced technology, uniform granulation, the production of organic fertilizer particles, non-toxic, tasteless, pollution-free, is the best fertilizer to replace fertilizer, organic fertilizer factory, feed factory, agricultural and animal husbandry plant, sewage treatment plant, township, town, village, farmers entrepreneurial ideal choice. Coupled with low price, good quality, small investment, quick effect, is a good project to start a business and get rich.
Tumblr media
0 notes
pennumbra · 4 years ago
Photo
Tumblr media Tumblr media Tumblr media
Here’s the character based on that comment meme I did!
I tried to channel some of the show’s style, and it was a fun mini char design challenge- thanks to everyone for playing and submitting comments!
Trying to blend up all the answers into one thing, my thoughts on her backstory WOULD BE: she comes from an old wealthy family, and after inheriting the fam estate, decides to follow her dream of renovating their old country manor on the outskirts of Corona into a sanctuary/rehabilitation center for animals and birds.
(And I’m thinking maybe her family has a history of of being big game hunters/furriers/trading in animal products/etc. too, to make it more of a dream.)
Though she loves animals, she doesn't have a ton of practical experience actually... working with them due to her upbringing. SO, post-series, she meets  the Princess, who loves the idea and helps out by putting her in contact w/ her and her friends’ animal companions, along with some of the veterinary/animal husbandry pros at the castle!
I imagine her wardrobe would get increasingly practical/more zookeeperish and less stuffy/formal and gothic over time, tho the epicurean culinary tastes remain. 
The bottom doodle is from the grand opening/welcome party once the center open. Adira is in attendance to nosh on hors d'oeuvres b/c ofc she is 
88 notes · View notes
industrytrends1 · 3 years ago
Text
Why Is Wood Vinegar Used in Wastewater Treatment Plants?
Tumblr media
Wood vinegar or wood acid or pyroligneous acid is a dark liquid, which is derived from charcoal. It is obtained by heating biomass in a closed container. The smoke generated during charcoal production is cooled into a liquid and then separated into bio-oil, tar, and wood vinegar. The dark liquid is a combination of nearly 80–90% water and over 200 organic compounds, such as acetic acid, esters, formic acid, ketones, methanol, and phenol. 
Moreover, the increasing implementation of government initiatives regarding bio-based products will also ensure the large-scale adoption of wood vinegar for wastewater treatment, food, animal husbandry, wood tar, and agriculture applications. In the recent past, the agriculture sector has emerged as the largest consumer of wood vinegar due to the enormous use of bio-based fertilizers and pesticides to increase productivity. For instance, the Ministry of New and Renewable Energy, Government of India, has launched several programs in recent times to promote the use of biomass materials and bio-based products, such as wood vinegar.
The manufacturing segment of the wood vinegar market is categorized into slow paralysis, fast and intermediate pyrolysis, and others. Under this segment, the slow pyrolysis category is expected to account for the largest market share during the forecast period as slow pyrolysis provides a better yield of wood vinegar, char, and other products than other manufacturing processes. In comparison to other processes, slow pyrolysis exhibits a longer vapor resistance time and slower heating rate.   
In recent years, wood vinegar producers, such as TAGROW CO. LTD., Nakashima Trading Co. Ltd., Ace (Singapore) Pte Ltd., Canada Renewable Bioenergy Corporation, Byron Biochar, and Nettenergy BV,  have engaged in technological advancements to develop better and improved pyrolysis kiln methods to produce char, biochar, and wood vinegar. Additionally, the advanced pyrolysis methods help enhance the production process of wood vinegar and reduce the total manufacturing process. Further, the producers are also focusing on involving poverty-ridden people in wood vinegar production processes as the material is majorly produced in villages by using local resources and feedstock.
Thus, the escalating need for treated water and surging government focus on using bio-based products will fuel the consumption of wood vinegar globally.
0 notes
adventuredelight · 3 years ago
Text
Leh Ladakh tour and travel company
Tumblr media
Pangi Valley It's a retired vale of Himanchal Pradesh and is unique in its unspoiled natural beauty and splendor. The sights are inspiring and striking. Nature has handed it with thick timber, aqueducts, falls, snow- limited mountains, virgin glaciers, snow coverts, colorful verdures and faunas, grassy pitches of high mountains, and gutters flowing in deep hand. It has got commodity for everyone. The people are hard-working, God- stewing, and helpful by nature, and they indulge in husbandry practices close to their hearts. Multitudinous aqueducts of melting glaciers give pure water, and the presence of fresh air enables townies to follow organic ways learned from generation to generation, free of any chemicals. This journey is a natural paradise for ornithologists, botanists, pedestrians, and rovers.
Sacch Pass It's one of the loftiest mountain Passes of India, with a height of 4414 measures from ocean position. It's a connection for Chamba Valley to Pangi Valley in the Pir Panjal range of mountains.
We'll start beforehand from Bairagarh to Killar. First, it'll be the sight of an cornucopia of Pine Tree timber, and while thrusting towards Sacch Pass, it'll give way to snow- covered mountains and multitudinous falls. The Misty mountain road provides an unmatched exhilaration. The fifteen bases high snow walls on both sides of the road give the print of a snow lair. The diversity of flowers with pictorial colors and the witching sight of floating shadows feel so surreal.
Stylish Tour Drivers in India, Stylish India stint package, Bespeak India Tour Packages Online, India Holiday Tour Package, Tenures to India from USA, Stylish trip company in India, Luxury stint package in India, Stylish India tourism packages, Delhi to Auli stint package, Delhi Varanasi Ayodhya stint package, Delhi Ayodhya Prayagraj stint, Stylish stint agency for Taj Mahal, Best Andaman trip agency, Leh Ladakh stint and trip company, Leh Ladakh tour and travel company, Stylish Agra Jaipur trip agency, Stylish Char Dham stint package, Best Tour Drivers in New Delhi, Best Agra stint package, Stylish Ladakh stint package, Stylish south India stint package, Book Delhi Tour Packages Online, Book Taj Mahal Tour Packages Online, Book Leh Ladakh Tour Packages Online, Book Chardham Tour Packages Online, Book Varanasi Tour Packages Online, Book Ayodhya Tour Packages Online, Book Rajasthan Tour Packages Online, Stylish trip company in New Delhi, Luxury stint package in New Delhi, Best Agra Jaipur trip agency in New Delhi, Leh Ladakh stint and trip company in New Delhi
0 notes
charcorner · 9 months ago
Text
Welcome to Char Corner!
Hi there, fellow Char owners! My name is Astra, I use any pronouns but mostly she/they, and I raise Homo aznablii (also known as Chars) for a living! I have worked at multiple Char shelters, and own multiple Chars myself. Here's a quick intro to them!
(Plus, some tips I shared in the comments of a Strange Aeons video about clown husbandry:)
Tumblr media
Mars
Male 0079
Age: 4
Mars is a new addition to the family. I picked him up from a Char shelter back in July. He was surrendered to the shelter after his owners couldn't take care of them. PSA: Purebred 0079s are not good starter Chars! They need constant stimulation to keep from engaging in the classic Char pastime of destroying everything in your home, along with 0079s needing to be disciplined regularly, (without force! please do not hit or yell at your char, as they will distrust you and be more likely to indiscriminately attack you. i like to use spray bottles) to actually make them listen to you. If you REALLY like 0079s but don't have any experience raising Chars, get a 0079/Quattro cross. While Mars can have an attitude sometimes and has tried to escape a few times when I let him outside for more than a few minutes, he's a really sweet Char. Fun fact: he's the same 0079 Char from the Garfield story I shared above
---
Hallie Jr.
Female Quattro/CCA mix
Age: 3
Hallie Jr. is one of the Char pups from the story I shared above. Her mother, a Quattro named Hallie, was one of the first Chars I raised, and was a general sweetheart. Sadly, last May, Hallie was diagnosed with cancer at the age of 17, and I had no choice but to end her life in a humane way. I'll never forget the day I took her home from the shelter all those years ago, and how she was so scared on the ride back home... Anyways, Hallie Jr. is chaotic. That's it. I remember when I first took Mars home and Hallie Jr. gave him a nice chomp on the shoulder. What a way to roll in the welcome wagon... She's also given me a few nips, too, and almost attacked another Char at the Char park (my pride and joy as a char owner. /s) Anyways, I always say that Quattros are the ideal starter breed of Char, due to their mostly-docile temperament. CCAs, however, need a great deal of training and socialization, which I know a lot of casual Char owners can't afford to provide. Sadly, this has led to many CCAs turning aggressive and getting the breed as a whole classified as dangerous in a lot of jurisdictions. (They're kinda like the "bully breeds" of dogs.)
---
Meteor
Male Full Frontal
Age: 27
While I normally do not condone getting Full Frontals due to the problems with the breed (see above), a friend gave me Meteor because they were moving to a place which did not allow Chars in the lease (an unfortunate truth in many places) and I couldn't say no. Even if he is getting on in the years (the average Char lifespan is 33 years), he is still one of the most amazing Chars I have ever taken care of. However, last month he started to become more lethargic and nipped me when I tried to pet him (an action he usually enjoys). I'm planning to take him to the vet soon to see what's up with him.
---
Ceres
Female mutt (with 0079 and CCA features)
Age: 1½ years
Last but not least, Ceres was a stray Char pup who was rejected by her mother. I found her in my front lawn in critical condition and I just had to take her in because I couldn't let a newborn Char die like that, and bottle-fed her and nursed her back to health. She's currently in her "teen phase" (Chars fully mature at 2 years old) and is starting to test her boundaries. She often gets zoomies and even scratched Hallie Jr. once (she's probably learned her lesson now). However, she's still as sweet as the day I took her in!
Random Char facts and tips:
Chars only started being imported to the western world in the past 25 years. Before that, they were popular pets in Japan and other East Asian countries, hitting their stride in the late seventies, although a small portion of Chars were imported to Italy around the early eighties in the hopes of starting a fad, although they never caught on back then.
CHARS AND CLOWNS DO NOT GO TOGETHER!! I've seen so many Chars get surrendered to shelters because they attacked or even killed clowns, one of their NATURAL PREY SOURCES. Come on.
Chars are facultative carnivores. In the wild, they prey on not only clowns, but also deer and other large herbivores. But domesticated Chars will still be as happy eating small animals such as live mice as they would chasing down a deer in the wild.
Please do not keep attack/guard Chars, especially CCAs. The training to turn them into one cannot be done in a way that does not involve abuse. Please get a functioning security system.
You may have noticed that Chars are horny AF. It's a survival strategy: Chars mate with anything and everything as wild mother Chars have a tendency to reject or even eat their offspring. Thankfully for Char breeders, domesticated Chars have had this behavior almost entirely bred out of them.
Chars are pregnant for 6 months and usually give birth to a litter of 4-9 Char pups.
Anyways, good luck in your own Char breeding and owning adventures!
~ Astra
10 notes · View notes
cripplepunk-sylveon · 4 years ago
Note
Why would you need to feel guilty if you don't eat animals? i'm confused 😮 wouldn't it be a good thing if possible? I mean, since growing food for livestock is destroying the rainforest and isn't adopting a plant based diet one of the biggest things an individual can do to combat climate change?
As gently as I can manage: no, it's not that simple, and a plant-based diet as most folks think of it is not inherently better for the environment. Nothing any group of individuals from the general public can do will counteract the damage being done by big corporations.
tl;dr: A PBD is not inherently better for the environment, it highly depends on where you live and what you can/should buy, and many folks don't understand nor want to understand that. The history of food is a history of colonialism and violence and we need to address that, especially when it comes to veganism in North America and the importing of non-native foods to support it.
Full essay under the cut that I never meant to write but it sure did happen
Is it possible to go on a plant-based diet (a PBD, for future use of the term, because it will be popping up plenty here) within a localized area because it's more affordable/better for you/better for your environment? Yes. But it takes work to do so. As in, research, a willingness to buy and grow local, and an acute awareness of what the invasive species of your region are.
The unfortunate truth is that many people are unwilling or flat-out incapable of doing said research and work. They just want quick and easy access to plant-based food because they've heard somewhere that it's better and more humane than raising animals for meat/dairy/eggs. This is only possible because we live on colonized land, where we've created a massive distance between us and the origins of what we eat- and brought in non-native animal and plant species to reproduce what our colonizers eat, regardless of the impact on the land and the people. In fact, this was done very much on purpose. Native people reliant on colonial food systems are less likely to cause a ruckus, because they can just be starved out.
For an example, let's look at the Canadian North. The Inuit have hunted whales, seals, caribou, polar bear, and arctic char during the cold months in a sustainable fashion for thousands of years. Inuk people will hunt a single whale and feed their family for a year- never mind the uses for whale oil, baleen, and whale hide. They would use every part of the whale that they could find a use for, nothing was wasted. Nowadays, though... their traditional foods are called "barbaric" and "cruel", and hunting traditionally is frowned upon, while we ship fruit and vegetables that cannot be grown in permafrosted soil up to them and charge them as consumers for the cost to us. Here's a video from 2013 talking about the issue. From 2013! It's still happening now!! I would never recommend a PBD to someone living in such a situation because of both the expense and the destruction of the traditional hunting culture of the Inuit.
Before anyone tries to say I'm shitting on folks who can't eat meat- I'm really not. I get it, the lone star tick is an asshole of epic proportions, and allergies are a fuck you from the universe- I myself can't eat eggs! And they are in EVERYTHING! If we can accommodate allergies and dietary restrictions we absolutely should. I like to think there's a particularly shitty corner of the universe for people who think allergies are a joke or just someone being picky. But those are not choices. Those are required restrictions to keep the person alive and healthy.
Going vegan to "go green", on the other hand, is 100% a personal choice. Unfortunately it's also one frequently shaped by misinformation and propaganda. Vegans never really consider where their food comes from, and because the vast majority of them are city-dwellers who have access to a grocery store, they don't feel like they need to. It's not affecting them personally, so they don't care.
They should though. Many of the plants they rely on for food cause massive ecological damage, way more than growing feed for cattle, chickens, or pigs. Quinoa is farmed using child labour, and the sharp spike in price as white diners demand it- combined with the fact it's a thirsty crop that uses a lot of water that the locals also used as drinking water- kind of destroys any good it's doing by being a "superfood" (It was not a staple crop, however, and has done a little bit of good. Emphasis on a LITTLE BIT). Avocado is facing a similar situation- it was a staple food for the people growing it, now they can't afford it and they're resorting to inhumane measures to grow enough of it to meet white settler demand. (Also, if they fail to pay their cartel fees, they're very likely to have their farm burnt to the ground or worse. El Narco has their fingers in EVERYTHING, even in fruit production.) Cashews are mainly grown and processed in India, where workers suffer low pay and sweatshop conditions and caustic burns to ensure we have them to snack on. Soy products were once the main destructive force facing the Amazon rainforest, and now it's threatening the Cerrado and the millions of species that call the region home while filling local water supplies with silt and grime. There's also hundreds of reports detailing the slavery afoot at soy plantations, AND it's causing topsoil to erode faster.
No, meat and dairy as industries are not without fault. I never claimed they were. It's not hard to find things wrong with beef and dairy, and you can thank militant preachy vegans for that. You can also thank them for those horrifying ads everyone with a certain app spent their first two weeks blocking and reporting with a fervor like no other to make sure they stopped seeing them. (Or, maybe that was just me, idk what tiktok's deal is with giving me PETA and vegan propaganda videos but I'd like it to stop.) HOWEVER. The actual people producing my food, working the land to raise animals for meat and whatnot? They know what they're doing. Many of them have been studying husbandry and animal welfare since they were in middle school at the latest. I trust them to provide a good quality of life for a cow, chicken, pig, or bison that will end up on my plate one day.
Besides, they don't see me eating jerky instead of something I'm deathly allergic to and tell me a horror story about how the cow who provided it was flayed alive (yes, this has happened, more than once- it wasn't even beef jerky, it was bison from a local ranch). They just let me snack in peace and we go about both our days.
0 notes
dfrobots-blog · 6 years ago
Text
Smart Terrarium
Automated environment for reptiles to promote good husbandry and enable maximum lifespan for animals in captivity.
Tumblr media Tumblr media
Things used in this project
Hardware components
Raspberry Pi 3 Model B×1
Arduino MKR1000 ×1
Arduino UNO & Genuino UNO ×1
DHT22 Temperature Sensor×1
Adafruit Waterproof DS18B20 Digital temperature sensor ×1
DFRobot Gravity: Analog UV Sensor (ML8511)×1
DFRobot Gravity: Analog Capacitive Soil Moisture Sensor- Corrosion Resistant×1
Ultrasonic Sensor - HC-SR04 (Generic) ×2Seeed Grove - 2-Channel SPDT Relay ×1
Hand tools and fabrication machines
3D Printer (generic)
Story
Intro
Smart Terrarium is the all in one system that provides the necessary information and automation to encourage a full and happy life for your reptiles. This system provides the user with the ability to monitor a variety of sensors in their animals habitat as well as control the lighting and misting system.
Backstory
This system was designed for my chameleon, Curie. She is a veiled chameleon and loves having her cage always kept in the optimal conditions. She is currently benefiting from the daily scheduled misting routines that the Smart Terrarium provides. This keeps her humidity in the appropriate range while also providing her with a nice place to cool off and get a drink.Another great part of having the Smart Terrarium is peace of mind. You no longer need to randomly check on the status of the mister bucket water level. You can always rely on the Smart Terrarium to notify you when you are running low. Also get notifications when the drain bucket is approaching maximum capacity.The most important part of this setup is the monitoring of the UV light. Chameleons require UV-B to produce Vitamin D. When a chameleon does not absorb enough calcium a chameleon can develop abnormalities in bone growth, rachitis, Metabolic Bone Disease (MBD) or just get very weak bones that are prone to breaking. The Smart Terrarium provides constant monitoring of UV light and can notify the user when the average UV index is below a certain threshold.
Hardware
This project uses a Raspberry Pi 3, an Arduino Uno, and a ArduinoMKR1000. The Raspberry Pi acts as our main system receiving readings from the Uno and MKR1000. The Pi also acts as a web server which delivers our app to the client when a user wants to monitor their system. They simply log in to a web page allowing them to interact with the Smart Terrarium from anywhere around the globe.
Tumblr media
Raspberry Pi 3 A+
The MKR1000 is the main workhorse for getting sensor data and it sends its readings every second over wifi to the web server running on the Raspberry Pi. It has the following sensors connected to it:
(5) DS18B20 Digital Tempearture probes
(1) DHT22 Temperature & Humidity sensor
(1) UV sensor
(1)Soil Moisture sensor     
Tumblr media
Arduino MKR1000
The Arduino Uno is connected to the
Raspberry Pi via USB. It is used to monitor the water levels and also control the relays for the lights and misting pump. It has the following hardware connected:(2) HC-SR04 Ultrasonic Sensor
(2) Relays
Tumblr media
 Arduino Uno connected to 2 proximity sensors and 2 relays
Tumblr media
Misting Bucket, Misting Pump, Drain Bucket with Proximity Sensor
Software
This system leverages the following open source software:Node.jsJohnny-fiveRethinkDBFirmataVue
Backend
The Raspberry Piis running an Express web server which collects readings from the sensors and saves them to a RethinkDB instance. The readings are being reported to the Pi every second so the user has access to the most current measurements.
 The readings are saved every 5 minutes in Rethink DB for historical data.The Uno is running the PingFirmataSketch and using serial to expose the proximity sensors and relays to the Pi using Firmata protocol. The Pi leverages Johnny-five to allow the user to program in javascript.The MKR1000 is running a custom sketch using OneWire for the 5 temperature probes and then using analog inputs for the other sensors.
 It posts the values to the Pi every second making sure the readings the user sees are fresh.
Frontend
The Raspberry Pi also serves up the front end portion of this app which leverages Vue.js. It allows the user to log in from anywhere having complete control over their pet's environment. The app works on any modern web browser so you can access it from a computer, tablet, or phone.The Smart Terrarium app allows the user to view the latests readings along with a sparkline graph of the previous day's historical data.The user can click through on any of the sensors
to view their history data. 
The Measurements page shows a graph with the entire sensor history. The user can select a section of the bottom graph to display a zoomed in version in the graph above. This allows the user to inspect the historic data for any spikes or dips where the environment is out of the norm.The user has the ability to schedule events including lighting and misting events. 
The Event page displays the currently scheduled events and allows the user to add, edit, and delete events. These events are used to automate the lighting and misting sessions which provides peace making sure you never forget.
The Controls page allows the user to manually override the scheduled lighting and misting events. The page displays the current status of each relay and allows the user to toggle them with a click of a button.The Admin page allow the user to enter information about themselves for contact purposes. This is for the email notifications on high/low water levels on misting system as well as notifications for when the daily average UV index gets too low. There is also a spot for the animals birthday so we can provide birthday notifications.
Screenshots
Home Page
Tumblr media
                                                                        Home Page
Tumblr media
                                                                  Historical Measurements
Tumblr media
                                                                        Historical Measurements
Tumblr media
                                                                         Historical Measurements
Tumblr media
                                                                  Historical Measurements (zoomed)>
Tumblr media
Historical Measurements
Tumblr media
                                                    Historical Measurements (zoomed)
Tumblr media
    Historical Measurements
Events page for lighting and misting events.
Tumblr media
                                           Schedule Lighting and Misting Events
Controls page where the user can override the scheduled events.                                              
Tumblr media
                                         Misting and Lighting Overrides
Demo
Here is a demo of the overall system.
youtube
                                        Demo of The Smart Terrarium
We hope you enjoyed our presentation of the Smart Terrarium and encourage any reptile owners to use this project to improve the lives of your pets.Thanks for your time and happy making!
Custom parts and enclosures
Plant Holder Brace
This provides extra support to the cage for hanging a plant.
Download Here
Mister Mount
This provides a nice clean installation of the misting head for the misting system.
Download Here
Schematics
Arduino Uno diagram
The Arduino Uno circuit used to control both relays for the lighting and misting system, as well as monitor the water levels on the misting bucket and drain.
Tumblr media
Arduino MKR1000
This is really for the MKR1000 but tinkercad circuits didn't have it as a component. All pins are still correct.
Tumblr media
Code
Ping Firmata
 C#This is the version of firmata required for the
Proximity sensors
to function properly. Install this sketch on the Arduino Uno.
/* * Firmata is a generic protocol for communicating with microcontrollers * from software on a host computer. It is intended to work with * any host computer software package. * * To download a host software package, please clink on the following link * to open the download page in your default browser. * * http://firmata.org/wiki/Download */ /*  Copyright (C) 2006-2008 Hans-Christoph Steiner.  All rights reserved.  Copyright (C) 2010-2011 Paul Stoffregen.  All rights reserved.  Copyright (C) 2009 Shigeru Kobayashi.  All rights reserved.  Copyright (C) 2009-2011 Jeff Hoefs.  All rights reserved.  Copyright (C) 2012 Julian Gaultier.  All rights reserved.  Copyright (C) 2015 Rick Waldron.  All rights reserved.  This library is free software; you can redistribute it and/or  modify it under the terms of the GNU Lesser General Public  License as published by the Free Software Foundation; either  version 2.1 of the License, or (at your option) any later version. */ #include <Servo.h> #include <Wire.h> #include <Firmata.h> #define I2C_WRITE B00000000 #define I2C_READ B00001000 #define I2C_READ_CONTINUOUSLY B00010000 #define I2C_STOP_READING B00011000 #define I2C_READ_WRITE_MODE_MASK B00011000 #define I2C_10BIT_ADDRESS_MODE_MASK B00100000 #define MAX_QUERIES 8 #define MINIMUM_SAMPLING_INTERVAL 10 #define REGISTER_NOT_SPECIFIED -1 #define PING_READ 0x75 // PING_READ is for use with HCSR04 and similar "ultrasonic ping" components /*============================================================================== * GLOBAL VARIABLES *============================================================================*/ // analog inputs int analogInputsToReport = 0; // bitwise array to store pin reporting // digital input ports byte reportPINs[TOTAL_PORTS];   // 1 = report this port, 0 = silence byte previousPINs[TOTAL_PORTS]; // previous 8 bits sent // pins configuration byte pinConfig[TOTAL_PINS];         // configuration of every pin byte portConfigInputs[TOTAL_PORTS]; // each bit: 1 = pin in INPUT, 0 = anything else int pinState[TOTAL_PINS];           // any value that has been written // timer variables unsigned long currentMillis;  // store the current value from millis() unsigned long previousMillis; // for comparison with currentMillis int samplingInterval = 19;    // how often to run the main loop (in ms) // i2c data struct i2c_device_info {  byte addr;  byte reg;  byte bytes; }; // for i2c read continuous more i2c_device_info query[MAX_QUERIES]; byte i2cRxData[32]; boolean isI2CEnabled = false; signed char queryIndex = -1; // default delay time between i2c read request and Wire.requestFrom() unsigned int i2cReadDelayTime = 0; Servo servos[MAX_SERVOS]; /*============================================================================== * FUNCTIONS *============================================================================*/ void readAndReportData(byte address, int theRegister, byte numBytes) {  // allow I2C requests that don't require a register read  // for example, some devices using an interrupt pin to signify new data available  // do not always require the register read so upon interrupt you call Wire.requestFrom()  if (theRegister != REGISTER_NOT_SPECIFIED)  {    Wire.beginTransmission(address);    Wire.write((byte)theRegister);    Wire.endTransmission();    delayMicroseconds(i2cReadDelayTime); // delay is necessary for some devices such as WiiNunchuck  }  else  {    theRegister = 0; // fill the register with a dummy value  }  Wire.requestFrom(address, numBytes); // all bytes are returned in requestFrom  // check to be sure correct number of bytes were returned by slave  if (numBytes == Wire.available())  {    i2cRxData[0] = address;    i2cRxData[1] = theRegister;    for (int i = 0; i < numBytes; i++)    {      i2cRxData[2 + i] = Wire.read();    }  }  else  {    if (numBytes > Wire.available())    {      Firmata.sendString("I2C Read Error: Too many bytes received");    }    else    {      Firmata.sendString("I2C Read Error: Too few bytes received");    }  }  // send slave address, register and received bytes  Firmata.sendSysex(SYSEX_I2C_REPLY, numBytes + 2, i2cRxData); } void outputPort(byte portNumber, byte portValue, byte forceSend) {  // pins not configured as INPUT are cleared to zeros  portValue = portValue & portConfigInputs[portNumber];  // only send if the value is different than previously sent  if (forceSend || previousPINs[portNumber] != portValue)  {    Firmata.sendDigitalPort(portNumber, portValue);    previousPINs[portNumber] = portValue;  } } /* ----------------------------------------------------------------------------- * check all the active digital inputs for change of state, then add any events * to the Serial output queue using Serial.print() */ void checkDigitalInputs(void) {  /* Using non-looping code allows constants to be given to readPort().   * The compiler will apply substantial optimizations if the inputs   * to readPort() are compile-time constants. */  if (TOTAL_PORTS > 0 && reportPINs[0])    outputPort(0, readPort(0, portConfigInputs[0]), false);  if (TOTAL_PORTS > 1 && reportPINs[1])    outputPort(1, readPort(1, portConfigInputs[1]), false);  if (TOTAL_PORTS > 2 && reportPINs[2])    outputPort(2, readPort(2, portConfigInputs[2]), false);  if (TOTAL_PORTS > 3 && reportPINs[3])    outputPort(3, readPort(3, portConfigInputs[3]), false);  if (TOTAL_PORTS > 4 && reportPINs[4])    outputPort(4, readPort(4, portConfigInputs[4]), false);  if (TOTAL_PORTS > 5 && reportPINs[5])    outputPort(5, readPort(5, portConfigInputs[5]), false);  if (TOTAL_PORTS > 6 && reportPINs[6])    outputPort(6, readPort(6, portConfigInputs[6]), false);  if (TOTAL_PORTS > 7 && reportPINs[7])    outputPort(7, readPort(7, portConfigInputs[7]), false);  if (TOTAL_PORTS > 8 && reportPINs[8])    outputPort(8, readPort(8, portConfigInputs[8]), false);  if (TOTAL_PORTS > 9 && reportPINs[9])    outputPort(9, readPort(9, portConfigInputs[9]), false);  if (TOTAL_PORTS > 10 && reportPINs[10])    outputPort(10, readPort(10, portConfigInputs[10]), false);  if (TOTAL_PORTS > 11 && reportPINs[11])    outputPort(11, readPort(11, portConfigInputs[11]), false);  if (TOTAL_PORTS > 12 && reportPINs[12])    outputPort(12, readPort(12, portConfigInputs[12]), false);  if (TOTAL_PORTS > 13 && reportPINs[13])    outputPort(13, readPort(13, portConfigInputs[13]), false);  if (TOTAL_PORTS > 14 && reportPINs[14])    outputPort(14, readPort(14, portConfigInputs[14]), false);  if (TOTAL_PORTS > 15 && reportPINs[15])    outputPort(15, readPort(15, portConfigInputs[15]), false); } // ----------------------------------------------------------------------------- /* sets the pin mode to the correct state and sets the relevant bits in the * two bit-arrays that track Digital I/O and PWM status */ void setPinModeCallback(byte pin, int mode) {  if (pinConfig[pin] == I2C && isI2CEnabled && mode != I2C)  {    // disable i2c so pins can be used for other functions    // the following if statements should reconfigure the pins properly    disableI2CPins();  }  if (IS_PIN_SERVO(pin) && mode != SERVO && servos[PIN_TO_SERVO(pin)].attached())  {    servos[PIN_TO_SERVO(pin)].detach();  }  if (IS_PIN_ANALOG(pin))  {    reportAnalogCallback(PIN_TO_ANALOG(pin), mode == ANALOG ? 1 : 0); // turn on/off reporting  }  if (IS_PIN_DIGITAL(pin))  {    if (mode == INPUT)    {      portConfigInputs[pin / 8] |= (1 << (pin & 7));    }    else    {      portConfigInputs[pin / 8] &= ~(1 << (pin & 7));    }  }  pinState[pin] = 0;  switch (mode)  {  case ANALOG:    if (IS_PIN_ANALOG(pin))    {      if (IS_PIN_DIGITAL(pin))      {        pinMode(PIN_TO_DIGITAL(pin), INPUT);    // disable output driver        digitalWrite(PIN_TO_DIGITAL(pin), LOW); // disable internal pull-ups      }      pinConfig[pin] = ANALOG;    }    break;  case INPUT:    if (IS_PIN_DIGITAL(pin))    {      pinMode(PIN_TO_DIGITAL(pin), INPUT);    // disable output driver      digitalWrite(PIN_TO_DIGITAL(pin), LOW); // disable internal pull-ups      pinConfig[pin] = INPUT;    }    break;  case OUTPUT:    if (IS_PIN_DIGITAL(pin))    {      digitalWrite(PIN_TO_DIGITAL(pin), LOW); // disable PWM      pinMode(PIN_TO_DIGITAL(pin), OUTPUT);      pinConfig[pin] = OUTPUT;    }    break;  case PWM:    if (IS_PIN_PWM(pin))    {      pinMode(PIN_TO_PWM(pin), OUTPUT);      analogWrite(PIN_TO_PWM(pin), 0);      pinConfig[pin] = PWM;    }    break;  case SERVO:    if (IS_PIN_SERVO(pin))    {      pinConfig[pin] = SERVO;      if (!servos[PIN_TO_SERVO(pin)].attached())      {        servos[PIN_TO_SERVO(pin)].attach(PIN_TO_DIGITAL(pin));      }    }    break;  case I2C:    if (IS_PIN_I2C(pin))    {      // mark the pin as i2c      // the user must call I2C_CONFIG to enable I2C for a device      pinConfig[pin] = I2C;    }    break;  default:    Firmata.sendString("Unknown pin mode"); // TODO: put error msgs in EEPROM  }  // TODO: save status to EEPROM here, if changed } void analogWriteCallback(byte pin, int value) {  if (pin < TOTAL_PINS)  {    switch (pinConfig[pin])    {    case SERVO:      if (IS_PIN_SERVO(pin))        servos[PIN_TO_SERVO(pin)].write(value);      pinState[pin] = value;      break;    case PWM:      if (IS_PIN_PWM(pin))        analogWrite(PIN_TO_PWM(pin), value);      pinState[pin] = value;      break;    }  } } void digitalWriteCallback(byte port, int value) {  byte pin, lastPin, mask = 1, pinWriteMask = 0;  if (port < TOTAL_PORTS)  {    // create a mask of the pins on this port that are writable.    lastPin = port * 8 + 8;    if (lastPin > TOTAL_PINS)      lastPin = TOTAL_PINS;    for (pin = port * 8; pin < lastPin; pin++)    {      // do not disturb non-digital pins (eg, Rx & Tx)      if (IS_PIN_DIGITAL(pin))      {        // only write to OUTPUT and INPUT (enables pullup)        // do not touch pins in PWM, ANALOG, SERVO or other modes        if (pinConfig[pin] == OUTPUT || pinConfig[pin] == INPUT)        {          pinWriteMask |= mask;          pinState[pin] = ((byte)value & mask) ? 1 : 0;        }      }      mask = mask << 1;    }    writePort(port, (byte)value, pinWriteMask);  } } // ----------------------------------------------------------------------------- /* sets bits in a bit array (int) to toggle the reporting of the analogIns */ //void FirmataClass::setAnalogPinReporting(byte pin, byte state) { //} void reportAnalogCallback(byte analogPin, int value) {  if (analogPin < TOTAL_ANALOG_PINS)  {    if (value == 0)    {      analogInputsToReport = analogInputsToReport & ~(1 << analogPin);    }    else    {      analogInputsToReport = analogInputsToReport | (1 << analogPin);    }  }  // TODO: save status to EEPROM here, if changed } void reportDigitalCallback(byte port, int value) {  if (port < TOTAL_PORTS)  {    reportPINs[port] = (byte)value;  }  // do not disable analog reporting on these 8 pins, to allow some  // pins used for digital, others analog.  Instead, allow both types  // of reporting to be enabled, but check if the pin is configured  // as analog when sampling the analog inputs.  Likewise, while  // scanning digital pins, portConfigInputs will mask off values from any  // pins configured as analog } /*============================================================================== * SYSEX-BASED commands *============================================================================*/ void sysexCallback(byte command, byte argc, byte *argv) {  byte mode;  byte slaveAddress;  byte slaveRegister;  byte data;  unsigned int delayTime;  switch (command)  {  case I2C_REQUEST:    mode = argv[1] & I2C_READ_WRITE_MODE_MASK;    if (argv[1] & I2C_10BIT_ADDRESS_MODE_MASK)    {      Firmata.sendString("10-bit addressing not supported");      return;    }    else    {      slaveAddress = argv[0];    }    switch (mode)    {    case I2C_WRITE:      Wire.beginTransmission(slaveAddress);      for (byte i = 2; i < argc; i += 2)      {        data = argv[i] + (argv[i + 1] << 7);        Wire.write((byte)data);      }      Wire.endTransmission();      delayMicroseconds(70);      break;    case I2C_READ:    case I2C_READ_CONTINUOUSLY:      if (argc == 6)      {        // a slave register is specified        slaveRegister = argv[2] + (argv[3] << 7);        data = argv[4] + (argv[5] << 7); // bytes to read      }      else      {        // a slave register is NOT specified        slaveRegister = (int)REGISTER_NOT_SPECIFIED;        data = argv[2] + (argv[3] << 7); // bytes to read      }      if (mode == I2C_READ)      {        readAndReportData(slaveAddress, slaveRegister, data);      }      else      {        if ((queryIndex + 1) >= MAX_QUERIES)        {          Firmata.sendString("too many queries");          break;        }        queryIndex++;        query[queryIndex].addr = slaveAddress;        query[queryIndex].reg = slaveRegister;        query[queryIndex].bytes = data;      }      break;    case I2C_STOP_READING:      byte queryIndexToSkip;      // if read continuous mode is enabled for only 1 i2c device, disable      // read continuous reporting for that device      if (queryIndex <= 0)      {        queryIndex = -1;      }      else      {        // if read continuous mode is enabled for multiple devices,        // determine which device to stop reading and remove it's data from        // the array, shifiting other array data to fill the space        for (byte i = 0; i < queryIndex + 1; i++)        {          if (query[i].addr == slaveAddress)          {            queryIndexToSkip = i;            break;          }        }        for (byte i = queryIndexToSkip; i < queryIndex + 1; i++)        {          if (i < MAX_QUERIES)          {            query[i].addr = query[i + 1].addr;            query[i].reg = query[i + 1].reg;            query[i].bytes = query[i + 1].bytes;          }        }        queryIndex--;      }      break;    default:      break;    }    break;  case I2C_CONFIG:    delayTime = (argv[0] + (argv[1] << 7));    if (delayTime > 0)    {      i2cReadDelayTime = delayTime;    }    if (!isI2CEnabled)    {      enableI2CPins();    }    break;  case SERVO_CONFIG:    if (argc > 4)    {      // these vars are here for clarity, they'll optimized away by the compiler      byte pin = argv[0];      int minPulse = argv[1] + (argv[2] << 7);      int maxPulse = argv[3] + (argv[4] << 7);      if (IS_PIN_SERVO(pin))      {        if (servos[PIN_TO_SERVO(pin)].attached())        {          servos[PIN_TO_SERVO(pin)].detach();        }        servos[PIN_TO_SERVO(pin)].attach(PIN_TO_DIGITAL(pin), minPulse, maxPulse);        setPinModeCallback(pin, SERVO);      }    }    break;  case SAMPLING_INTERVAL:    if (argc > 1)    {      samplingInterval = argv[0] + (argv[1] << 7);      if (samplingInterval < MINIMUM_SAMPLING_INTERVAL)      {        samplingInterval = MINIMUM_SAMPLING_INTERVAL;      }    }    else    {      //Firmata.sendString("Not enough data");    }    break;  case EXTENDED_ANALOG:    if (argc > 1)    {      int val = argv[1];      if (argc > 2)      {        val |= (argv[2] << 7);      }      if (argc > 3)      {        val |= (argv[3] << 14);      }      analogWriteCallback(argv[0], val);    }    break;  case CAPABILITY_QUERY:    Serial.write(START_SYSEX);    Serial.write(CAPABILITY_RESPONSE);    for (byte pin = 0; pin < TOTAL_PINS; pin++)    {      if (IS_PIN_DIGITAL(pin))      {        Serial.write((byte)INPUT);        Serial.write(1);        Serial.write((byte)OUTPUT);        Serial.write(1);        Serial.write((byte)PING_READ);        Serial.write(1);      }      if (IS_PIN_ANALOG(pin))      {        Serial.write(ANALOG);        Serial.write(10);      }      if (IS_PIN_PWM(pin))      {        Serial.write(PWM);        Serial.write(8);      }      if (IS_PIN_SERVO(pin))      {        Serial.write(SERVO);        Serial.write(14);      }      if (IS_PIN_I2C(pin))      {        Serial.write(I2C);        Serial.write(1); // to do: determine appropriate value      }      Serial.write(127);    }    Serial.write(END_SYSEX);    break;  case PIN_STATE_QUERY:    if (argc > 0)    {      byte pin = argv[0];      Serial.write(START_SYSEX);      Serial.write(PIN_STATE_RESPONSE);      Serial.write(pin);      if (pin < TOTAL_PINS)      {        Serial.write((byte)pinConfig[pin]);        Serial.write((byte)pinState[pin] & 0x7F);        if (pinState[pin] & 0xFF80)        {          Serial.write((byte)(pinState[pin] >> 7) & 0x7F);        }        if (pinState[pin] & 0xC000)        {          Serial.write((byte)(pinState[pin] >> 14) & 0x7F);        }      }      Serial.write(END_SYSEX);    }    break;  case ANALOG_MAPPING_QUERY:    Serial.write(START_SYSEX);    Serial.write(ANALOG_MAPPING_RESPONSE);    for (byte pin = 0; pin < TOTAL_PINS; pin++)    {      Serial.write(IS_PIN_ANALOG(pin) ? PIN_TO_ANALOG(pin) : 127);    }    Serial.write(END_SYSEX);    break;  case PING_READ:  {    byte pulseDurationArray[4] = {        (argv[2] & 0x7F) | ((argv[3] & 0x7F) << 7),        (argv[4] & 0x7F) | ((argv[5] & 0x7F) << 7),        (argv[6] & 0x7F) | ((argv[7] & 0x7F) << 7),        (argv[8] & 0x7F) | ((argv[9] & 0x7F) << 7)};    unsigned long pulseDuration = ((unsigned long)pulseDurationArray[0] << 24) + ((unsigned long)pulseDurationArray[1] << 16) + ((unsigned long)pulseDurationArray[2] << 8) + ((unsigned long)pulseDurationArray[3]);    if (argv[1] == HIGH)    {      pinMode(argv[0], OUTPUT);      digitalWrite(argv[0], LOW);      delayMicroseconds(2);      digitalWrite(argv[0], HIGH);      delayMicroseconds(pulseDuration);      digitalWrite(argv[0], LOW);    }    else    {      digitalWrite(argv[0], HIGH);      delayMicroseconds(2);      digitalWrite(argv[0], LOW);      delayMicroseconds(pulseDuration);      digitalWrite(argv[0], HIGH);    }    unsigned long duration;    byte responseArray[5];    byte timeoutArray[4] = {        (argv[10] & 0x7F) | ((argv[11] & 0x7F) << 7),        (argv[12] & 0x7F) | ((argv[13] & 0x7F) << 7),        (argv[14] & 0x7F) | ((argv[15] & 0x7F) << 7),        (argv[16] & 0x7F) | ((argv[17] & 0x7F) << 7)};    unsigned long timeout = ((unsigned long)timeoutArray[0] << 24) +                            ((unsigned long)timeoutArray[1] << 16) +                            ((unsigned long)timeoutArray[2] << 8) +                            ((unsigned long)timeoutArray[3]);    pinMode(argv[0], INPUT);    duration = pulseIn(argv[0], argv[1], timeout);    responseArray[0] = argv[0];    responseArray[1] = (((unsigned long)duration >> 24) & 0xFF);    responseArray[2] = (((unsigned long)duration >> 16) & 0xFF);    responseArray[3] = (((unsigned long)duration >> 8) & 0xFF);    responseArray[4] = (((unsigned long)duration & 0xFF));    Firmata.sendSysex(PING_READ, 5, responseArray);    break;  }  } } void enableI2CPins() {  for (byte i = 0; i < TOTAL_PINS; i++)  {    if (IS_PIN_I2C(i))    {      // mark pins as i2c so they are ignore in non i2c data requests      setPinModeCallback(i, I2C);    }  }  isI2CEnabled = true;  // is there enough time before the first I2C request to call this here?  Wire.begin(); } void disableI2CPins() {  isI2CEnabled = false;  queryIndex = -1; } void systemResetCallback() {  if (isI2CEnabled)  {    disableI2CPins();  }  for (byte i = 0; i < TOTAL_PORTS; i++)  {    reportPINs[i] = false;   // by default, reporting off    portConfigInputs[i] = 0; // until activated    previousPINs[i] = 0;  }  // pins with analog capability default to analog input  // otherwise, pins default to digital output  for (byte i = 0; i < TOTAL_PINS; i++)  {    if (IS_PIN_ANALOG(i))    {      // turns off pullup, configures everything      setPinModeCallback(i, ANALOG);    }    else    {      // sets the output to 0, configures portConfigInputs      setPinModeCallback(i, OUTPUT);    }  }  // by default, do not report any analog inputs  analogInputsToReport = 0; } void setup() {  Firmata.setFirmwareVersion(FIRMATA_MAJOR_VERSION, FIRMATA_MINOR_VERSION);  Firmata.attach(ANALOG_MESSAGE, analogWriteCallback);  Firmata.attach(DIGITAL_MESSAGE, digitalWriteCallback);  Firmata.attach(REPORT_ANALOG, reportAnalogCallback);  Firmata.attach(REPORT_DIGITAL, reportDigitalCallback);  Firmata.attach(SET_PIN_MODE, setPinModeCallback);  Firmata.attach(START_SYSEX, sysexCallback);  Firmata.attach(SYSTEM_RESET, systemResetCallback);  Firmata.begin(57600);  systemResetCallback(); // reset to default config } void loop() {  byte pin, analogPin;  /* DIGITALREAD - as fast as possible, check for changes and output them to the   * FTDI buffer using Serial.print()  */  checkDigitalInputs();  /* SERIALREAD - processing incoming messagse as soon as possible, while still   * checking digital inputs.  */  while (Firmata.available())  {    Firmata.processInput();  }  /* SEND FTDI WRITE BUFFER - make sure that the FTDI buffer doesn't go over   * 60 bytes. use a timer to sending an event character every 4 ms to   * trigger the buffer to dump. */  currentMillis = millis();  if (currentMillis - previousMillis > samplingInterval)  {    previousMillis += samplingInterval;    /* ANALOGREAD - do all analogReads() at the configured sampling interval */    for (pin = 0; pin < TOTAL_PINS; pin++)    {      if (IS_PIN_ANALOG(pin) && pinConfig[pin] == ANALOG)      {        analogPin = PIN_TO_ANALOG(pin);        if (analogInputsToReport & (1 << analogPin))        {          Firmata.sendAnalog(analogPin, analogRead(analogPin));        }      }    }    // report i2c data for all device with read continuous mode enabled    if (queryIndex > -1)    {      for (byte i = 0; i < queryIndex + 1; i++)      {        readAndReportData(query[i].addr, query[i].reg, query[i].bytes);      }    }  } }
MKR1000 Sketch
C#This sketch sends the majority of sensor readings to the app running on the Raspberry Pi. Make sure to update the Wifi SSID and Password before uploading.
#include <OneWire.h> #include <DallasTemperature.h> #include <ArduinoHttpClient.h> #include <WiFi101.h> #include <SimpleDHT.h> // Using Pin 5 of MKR1000 #define ONE_WIRE_BUS_PIN 5 // TODO: Move out ot separate file #define SECRET_SSID "SECRET_SSID" #define SECRET_PASS "SECRET_PASS" #define RIG_NAME "Gill" char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS; // Setup a oneWire instance for temperature probes OneWire oneWire(ONE_WIRE_BUS_PIN); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); // probe_a: "28 FF 2F 9C B0 16 3 34" // probe_b: "28 FF 36 1E B1 16 4 4D" // probe_c: "28 FF 27 1E B1 16 4 FC" // probe_d: "28 FF 6A 74 B0 16 5 87" // probe_e: "28 FF  E B5 B0 16 3 E2" // Define device addresses for each probe DeviceAddress Probe01 = {0x28, 0xFF, 0x2F, 0x9C, 0xB0, 0x16, 0x03, 0x34}; DeviceAddress Probe02 = {0x28, 0xFF, 0x36, 0x1E, 0xB1, 0x16, 0x04, 0x4D}; DeviceAddress Probe03 = {0x28, 0xFF, 0x27, 0x1E, 0xB1, 0x16, 0x04, 0xFC}; DeviceAddress Probe04 = {0x28, 0xFF, 0x6A, 0x74, 0xB0, 0x16, 0x05, 0x87}; DeviceAddress Probe05 = {0x28, 0xFF, 0x0E, 0xB5, 0xB0, 0x16, 0x03, 0xE2}; int uvSensor = A1; int uvIndex = 0; int pinDHT22 = A2; SimpleDHT22 dht22(pinDHT22); int soilSensor = A3; int soilMoisture = 0; char serverAddress[] = "192.168.86.127"; // raspberry pi address int port = 3030; WiFiClient wifi; HttpClient client = HttpClient(wifi, serverAddress, port); int status = WL_IDLE_STATUS; String response; int statusCode = 0; void setup() {  // start serial port to show results  Serial.begin(9600);  delay(3000);  pinMode(LED_BUILTIN, OUTPUT);  while (status != WL_CONNECTED)  {    Serial.print("Attempting to connect to Network named: ");    Serial.println(ssid); // print the network name (SSID);    // Connect to WPA/WPA2 network:    status = WiFi.begin(ssid, pass);  }  // print the SSID of the network you're attached to:  Serial.print("SSID: ");  Serial.println(WiFi.SSID());  // print your WiFi shield's IP address:  IPAddress ip = WiFi.localIP();  Serial.print("IP Address: ");  Serial.println(ip);  Serial.print("Initializing Temperature Control Library Version ");  Serial.println(DALLASTEMPLIBVERSION);  // Initialize the Temperature measurement library  sensors.begin();  // set the resolution to 10 bit (Can be 9 to 12 bits .. lower is faster)  sensors.setResolution(Probe01, 9);  sensors.setResolution(Probe02, 9);  sensors.setResolution(Probe03, 9);  sensors.setResolution(Probe04, 9);  sensors.setResolution(Probe05, 9); } void loop() /****** LOOP: RUNS CONSTANTLY ******/ {  Serial.println();  Serial.print("Total Probes: ");  Serial.println(sensors.getDeviceCount());  // Command all devices on bus to read temperature  sensors.requestTemperatures();  float probeA = sensors.getTempC(Probe01);  float probeB = sensors.getTempC(Probe02);  float probeC = sensors.getTempC(Probe03);  float probeD = sensors.getTempC(Probe04);  float probeE = sensors.getTempC(Probe05);  float moistureSensorValue = analogRead(soilSensor);  soilMoisture = ((moistureSensorValue / 1024) - 1) * 100 * -1;  float uvSensorValue = analogRead(uvSensor);  uvIndex = uvSensorValue / 1024 * 3.3 / 0.1;  Serial.print("Rig Name: ");  Serial.println(String(RIG_NAME));  Serial.print("ProbeA:  ");  printTemperature(Probe01);  Serial.println();  Serial.print("ProbeB:  ");  printTemperature(Probe02);  Serial.println();  Serial.print("ProbeC:  ");  printTemperature(Probe03);  Serial.println();  Serial.print("ProbeD:  ");  printTemperature(Probe04);  Serial.println();  Serial.print("ProbeE:  ");  printTemperature(Probe05);  Serial.println();  Serial.print("soilMoisture:  ");  Serial.print(soilMoisture);  Serial.println();  Serial.print("uvIndex:  ");  Serial.print(uvIndex);  Serial.println();  byte temperature = 0;  byte humidity = 0;  int err = SimpleDHTErrSuccess;  if ((err = dht22.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess)  {    Serial.print("Read DHT22 failed, err=");    Serial.println(err);  }  else  {    Serial.print("DHT22: ");    Serial.print((int)temperature);    Serial.print(" *C, ");    Serial.print((int)humidity);    Serial.println(" RH%");  }  String postURL = String("POST readings to " + String(serverAddress) + ':' + String(port));  Serial.println(postURL);  String contentType = "application/x-www-form-urlencoded";  String postData = String(      "probeA=" + String(probeA) +      "&probeB=" + String(probeB) +      "&probeC=" + String(probeC) +      "&probeD=" + String(probeD) +      "&probeE=" + String(probeE) +      "&rig_name=" + String(RIG_NAME) +      "&uvIndex=" + String(uvIndex) +      "&soilMoisture=" + String(soilMoisture) +      "&humidity=" + String(humidity) +      "&temperature=" + String(temperature));  digitalWrite(LED_BUILTIN, HIGH);  client.post("/temperatures", contentType, postData);  // read the status code and body of the response  statusCode = client.responseStatusCode();  response = client.responseBody();  Serial.print("Status code: ");  Serial.println(statusCode);  Serial.print("Response: ");  Serial.println(response);  digitalWrite(LED_BUILTIN, LOW);  delay(100);  digitalWrite(LED_BUILTIN, HIGH);  delay(100);  digitalWrite(LED_BUILTIN, LOW);  delay(100);  digitalWrite(LED_BUILTIN, HIGH);  delay(100);  digitalWrite(LED_BUILTIN, LOW);  delay(1000); } // print temperature for device adress void printTemperature(DeviceAddress deviceAddress) {  float tempC = sensors.getTempC(deviceAddress);  if (tempC == -127.00)  {    Serial.print("Error getting temperature  ");  }  else  {    Serial.print(tempC, 1);    Serial.print(" C");    // Serial.print(" F: ");    // Serial.print(DallasTemperature::toFahrenheit(tempC));  } }
SmartTerrariumClient
This is the Client portion of Smart Terrarium built using Vue.js.
ryanjgill / smart-terrarium-client
Client for Smart Terrarium —
Read More
Latest commit to the master branch on 5-27-2019    
Download as zip
SmartTerrariumApp
Smart Terrarium App for receiving data, controlling hardware, and running the Smart Terrarium Client. This repo also contains the sketch for the MKR1000.
ryanjgill / smart-terrarium-app
Smart Terrarium App for receiving data, controlling hardware, and running the Smart Terrarium Client — Read More
Latest commit to the master branch on 5-31-2019      
Download as zip
(This article copied from hackster.io Author: Ryan Gill)
0 notes
gabrielmorrison · 8 years ago
Note
🔥, 🍳, 💎, 💫
🔥: How many special interests do you have at the moment?
rn mm prob like. 2 main ones lol being animal husbandry and lazytown :D pokemon is still a background one tho :^)
🍳: Do you have a stim related to your special interest?
not 2 b gay but w lazytown lots of dancing stuff w the songs @___@ also a lot of the words get stuck in my head and i repeat it A Lot lol
💎: When and how did you discover your special interest?
W the animal husbandry that was mm last summer? it started w a book on guinea pig care ! after i got my job @ petco tho i got waayyy more into it and now looking into that kind of stuff is always a go to ! w lazytown it was w all the memes lmao but i really love the show and chars regardless of meme status 
💫: Favorite fact about your special interest?
snakes dont have any arms 
lol fr tho w ah theres so many things like aspects about it i love i could go on and on but ig the fact that stands out to me most is that snakes do not have the chemical capacity to love x___x tht breaks my heart dude
w lazytown its that stefan was in his early 20s for ggíl thats so cool dood
2 notes · View notes
margdarsanme · 5 years ago
Text
NCERT Class 12 Sociology Chapter 3 The Story of Indian Democracy
NCERT Class 12 Sociology: Social Change and Development in India
Chapter 3 The Story of Indian Democracy
NCERT TEXTBOOK QUESTIONS SOLVED : Q. 1.Interest groups are part and parcel of a functioning democracy. Discuss. Ans. :
Interest groups are organised to pursue specific interest in the political arena, operating primarily by lobbying the members of the legislative bodies.
When certain groups feel that their interests are not being taken up, they may move to form an alternative party.
Democracy is a form of government for the people, by the people and of the people. In this system interest groups are formed for specific interest.
Interest groups are private organisation. They are formed to influence public policy.
These are non political systems and their main goal are to take care of their own interest.
Political parties are established organisations with the aim of achieving governmental power and using that power to pursue a specific programme. Different interest groups will work towards influencing political parties.
These organisations are regarded as movements until they achieve recognition.
The interest groups play a significant role in Indian democracy and they perform various important functions such as:
(a) Formation of Public Opinion: 
Using various forms of propaganda and communication, they mould public opinion. To get goodwill of public opinion and change in administrative system in their own favour they use T.V., radio, Email and various forms of social media, twitter and face book.
(b) Function at the time of Natural Disaster: 
These interest groups provide help during natural calamity like Himalayans Tsunami at Kedamath or earthquakes etc. By doing such social activities they get public attention and favour and they influence the government. 
Q. 2. Read the snippets from the debates held in the Constituent Assembly. Identify the interest groups. Discuss what kind of interest groups exist in contemporary India. How do they function? Ans. : 
Snippets from the debates
K.T. Shah said that the right to use full employment could and should be made real by a categoric obligation on the part of the state to provide useful work to every citizen who was able and qualified.
B. Das spoke against classifying the functions of the government as justiciable and non-justiciable. “I think it is the primary duty of Government to remove hunger and render social justice to every citizen and to secure social security…”. The teeming millions do not find any hope that the Union Constitution… will ensure them freedom from hunger, will secure them social justice, will ensure them a minimum standard of living and a minimum standard of public health”.
Ambedkar’s answer was as follows:
“The Draft Constitution as framed only provides a machinery for the government of the country. It is not a controversy to install any particular party in power as has done in some countries. Who should be in power is left to be determined by the people, as it must be, if the system is to satisfy the tests of democracy.
On land reform Nehru said, that social forces were such that law could not stand in the way of reforms, interesting reflection on the dynamic between the two. “If law and Parliament do not fit themselves into the changing picture, they cannot control the situation”.
On the protection of the tribal people and their interests, leaders like Jaipal Singh were assured by Nehru in the following words during the Constituent Assembly „ debates: “It is our intention and our fixed desire to help them as possible; in as efficient a way as possible to protect them from possibly their rapacious neighbours occasionally and to make them advance”.
Even as the Constituent Assembly adopted the title Directive Principles of State Policy to the rights that courts could not enforce, additional principles were added with unanimous acceptance. These included K. Santhanam’s clause that the state shall organise village punchayats and endow them with the powers and authority to be effective units of local self government.
T.A. Ramalingam Chettiar added the clause for promotion of cottage industries on co-operative lines in rural areas. Veteran parlimentarian Thakurdas Bhargava added that the state should organise agriculture and animal husbandry on modem lines.
Interest groups are people outside the government who support the political parties to gain favours from them when they are in power. These are private organisation formed to influence public policy. They are non political groups whose main aim is to uphold their own interest.Political parties are not political parties. In India interest groups adopt two methods i.e. to influence the legislative committees and to help people at the time of natural calamity.
In contemporary India ASSOCHAM, FICCI, Labour Unions, Student’s union,Farmers union, women’s organisations are example of pressure group and interest groups.
Q. 3. Create a ‘phad’ or a scroll with your own mandate when standing for school election.(This could be done in small group of 5, like a panchayat). Ans. : 
Being member of school Panchayat we will focus on following areas:
Panchayat members will try to inculcate self discipline among students. Being students we will function as a role model for rest of the students.
Being co-educational school, we will create an environment where girls get respect
and security so that indirectly we will provide a solid base for a healthy society.
We will take care of developing a system, through which students develop habit of self study and special coaching for professional courses may be arranged in the school.
Panchayat will take care of special children and remedial teaching for them.
Panchayat will coordinate with the Principal and may function as a pressure group to take care of proper student-teacher ratio, admission policy of the school, proper uniform, distribution of mid-day- meal etc.
Panchayat will also coordinate with the Principal and Managing staff to take care of games, sports, co-curricular activities and use of technology in school education.
Q. 4. Have you heard of Bal Panchayats and Mazdoor Kissan Sanghathan? If not, find out and write a note about them in about 200 words. Ans. : 
Bal Panchayat: 
My school follows a prefectoral system. The school has four houses. ,From each house, the house masters and the house children elect five prefects on the basis of their academic performances, leadership traits and their antecedents regarding .contribution for the curricular and co-curricular activities of the house. The principal,teachers and 20 prefects elect head boy of the school. The head boy functions as a prototype of the school. He/she is responsible for discipline, school environment, curricular and co-curricular activities, social interaction particularly with the other schools and is accountable for student’s activities in the school. The head boy particularly coordinates with the principal, headmasters, and house masters with the help of 20 prefects and helps in proper functioning of school buses, maintenance of assets, school fields, taking care of school property and by and large school discipline.
Mazdoor Sanghathan: 
In 1920, first All India Trade Union Congress (AITUC) was established.
It was initiated by the congress but in 1929 hijacked by the communists.
Indian Trade Union Congress (INTUC) untraced by the congress, Hind Mazdoor Sabha organised by the socialists and Bhartiya Mazdoor Sabha linked with Bhartiya Janta Party earlier Jan Sangh.
These trade unions played a very significant role in the recruitment, wage policy, functioning, living conditions, hire and fire policy and by and large developing a political and social awareness among the workers. Kissan Sanghthan: India is a country of villages. Even today 75% of Indian population is living in villages and depends on agriculture.
Earlier this population was not politically aware with their rights. They were very much traditional and attached to their customs and rituals but due to congress and communists now the kissans of India are politically very mature, are aware with their strength and providing strong base to Indian democracy. This is very much proved in 2014 election when these peasants voted for a stable government breaking the caste, class and region bondings.
Pt. Jawaharlal Nehru and Sardar Vallabh Bhai Patel took initiates in 1936 congress session at Lucknow and All India Kissan Sabha was established but due to caste and class conflict it could not function. Later CPI activists took command of Kissan Sabha. Many Kissan organisations emerged in India after independence. The socialists established Hind Kissan Panchayat and instead the Kissan Sabha by Marxist. The communist party of India (Marxists) established revolutionary peasants convention in 1967. This organisation gave lead to Naxalbari movement in West Bengal.
Due to the motivative of Shri Raj Narain and Choudhary Char an Singh in 1978 formed the All India Kissan Kamgar Sammelan. Many politicians and farmers like Shri Mahinder Singh Tikkait tried to organise the Kissans of India but even now this peasant group of India is not a well organised pressure group.
Q. 5. The 73rd amendment has been monumental in bringing a voice to the people in the Villages. Discuss. Ans. : The 73rd amendment has been monumental in bringing a voice to the people in the villages because this amendment is related to the directive principles of the state policy and panchayati raj. The amendment is based on the principle of power of the people and provides . constitutional guarantee to the Panchayats.
Main features of the Act:
Recognition to Panchayats, as institutions of self government.
Panchayat’s power and responsibilities to prepare a plan for economic development and social justice.
Establishment of uniform 3 tier system of strong Panchayats at village, block and district levels for all states having a population of over 20 lakhs.
The Act provides guidelines for the structure powers and functions, finance and elections and reservation of seats for the weaker sections of the given area.
Importance of the Act:
It was a revolutionary step towards establishing grassroot democracy.
All the states have passed legislation on the basis of guidelines and provision of the amendments.
Because of this act Panchayati Raj System at grassroot level became a reality.
Q. 6. Write an essay on the ways that the Indian Constitution touches peoples’ everyday life, drawing upon different examples. Ans. :
Indian constitution has given a democratic system to all of us.
Democracy is a government for the people, of the people and by the people. It is not limited to political freedom or economic and social justice. It is also about equal rights to all respective of caste, creed, race and gender.
Indian constitution has established Secularism. We have respect for all the religions and all the Indians have  fundamental right to have faith in their own religion. Indian constitution provides equal rights to minority communities by extending friendly relationship and all sort of support system to them.
India is a welfare state and a Sociologist patronise society. It is our duty to protect public and national property. We all have equal opportunities to make use of resources and put our best effort for economic development.
Indian constitution provides social, political and economic justice and equality to all citizens of India. 
Therefore it is our duty to support the government to participate in activity of government programmes like population control, smallpox, Malaria or Pulse Polio Programmes. Food Security Bill, Right to Information (RTI), Right to Education (RTE) and efforts for women empowerment are few major efforts made by the government to strengthen Indian democracy.
from Blogger http://www.margdarsan.com/2020/08/ncert-class-12-sociology-chapter-3.html
0 notes
todaybharatnews · 5 years ago
Link
via Today Bharat nbsp; nbsp; As many as 129 sheep belonging to farmers were killed after lightning struck them in a freak accident at rural Guntur in Andhra Pradesh in the wee hours of Wednesday. The sheep were left in the grazing fields overnight by the farmers, as was their practice but were found dead the next morning. According to the Vedullapalli Police station of Bapatla mandal in Guntur, it was around 6am on Wednesday when the five men to whom the sheep belonged woke up to find that their livestock were all killed. The incident took place between the grazing fields of Vedulapalli and Kothapalem villages. "It's normal practice to take them for grazing in the evening and stay over for the night. The men were also sleeping, but they were not harmed. The men were from Maddiboyinavaripalem village. They had come here to graze their sheep," said Rajasekhara Reddy, Sub Inspector with the Vedullapalli Police station. The official informed that though the farmer's livestock was not insured, the Animal Husbandry Department was mulling on compensating the farmers for their losses. The official in charge for Guntur region was unavailable for comment. Most of the 129 sheep belonged to five farmers viz. Maddiboyina Veeraiah, Maddiboyina Siva, Akki Srinivasa Rao, Akki Musalaiah and Bobby. Sheep owned by a couple of others were also found among the dead, said the police. Earlier this week on October 3, a 55-year-old labourer was killed after being struck by lightning in Krishna district of Andhra Pradesh. The victim, who was identified as B Nageswara Rao, was an agricultural labourer who was returning to his home from the fields with his livestock when lightning stuck him. The incident took place at Chavalapadu village of Mandavalli Mandal. The Indian Meteorological Department (IMD) in the meantime has issued two alerts for Andhra Pradesh. One alert has been issued for the state's Rayalaseema region and the other for north coastal Andhra. "Heavy rain very likely to occur at isolated places over north coastal Andhra Pradesh. Thunderstorm accompanied by lightning very likely to occur at isolated places," the IMD said. "Thunderstorm accompanied with lightning very likely to occur at isolated places over Rayalaseema," it added
0 notes
khabarsamay · 7 years ago
Text
Capacity Building Program for Women
The ICAR–National Organic Farming Research Institute (NOFRI), the erstwhile ICAR Research complex for NEH Region, Sikkim Centre, Tadong, Gangtok distributes Vanaraja day old chicks to the farmers of Sikkim under poultry seed project funded by ICAR-Directorate of Poultry Research, Hyderabad. The chicks are being distributed to the tribal farmers free of cost at the rate of 25 chicks to each family. During the current year more than 90, 000 numbers of Vanaraja day old chicks have been distributed to the farmers of Sikkim. During the visits to the rural farms it has been observed that early chick’s mortality, poor feeding and housing management cause great loss to the farmers economy. To ameliorate this problem, a three-day training program on “Capacity building programme for tribal women on Backyard Poultry Farming with Vanaraja Chicken in Rural Sikkim under Poultry Seed Project” was organised at ICAR-NOFRI, Tadong during March 20-22, 2018. Dr. H. K. Chettri, Ex-Principal Director, Department of Animal Husbandry,  Livestock, Fisheries and Veterinary Services (AHLF&VS), Government of Sikkim attended the valedictory function as Chief Guest. Welcoming the guests and participants, Dr. Rafiqul Islam, Principal Scientist, ICAR-NOFRI and coordinator of the training program briefed about the aim of organizing the program. 22 female participants from different villages of Sikkim comprising of 11 participants from East, 6 from West and 5 from South district participated in the program. The aim of the training was to train the trainers who can educate and train the other farmers particularly women farmers. All the participants were very interactive during all the theory and practical sessions given on various aspects of Vanaraja poultry farming. The training programme covered 11 lectures and two hands on training on housing, feeding, lighting, preventive and therapeutic management of Vanaraja birds both at intensive and backyard rearing systems including organic vegetable and crop production in integration with poultry farming.             Dr. Ravikant Avasthe, Joint Director, ICAR- NOFRI addressed the participants and encouraged them to undertake Vanaraja chicken farming as an enterprise for self employment as well as enriching the nutrition of their family by providing good quality eggs and chicken meat. He highlighted the higher production potential of Vanaraja compared to the native chicken in terms of eggs and meat production. He invited the participants to utilize the know-how gained during the three-day training program for increasing production through Vanaraja poultry farming in their respective areas. He highlighted the role of poultry manure in enriching soil with more micronutrient and other essential organic matter for increased production of crops and vegetables. Dr.  Avasthe further reiterated that backyard poultry farming is very close to organic farming where most of the guidelines are followed. Dr. H. K. Chettri, Ex-Principal Director, AHLF&VS Department, Government of Sikkim appreciated the efforts of the team of Scientist, ICAR-NOFRI in popularising the Vanaraja Chicken for the cause of strengthening farmers’ economy. He congratulated the participants for getting opportunity to be a part of the training program. He expressed happiness for organizing the training programme for women empowerment through capacity building on Vanaraja chicken farming and hoped that the technology dissemination programme will enormously help the farmers for effective and economic backyard poultry farming. He further encouraged and reiterated the participants for utilizing the benefits of the training program and helps others by sharing the knowledge on Vanaraja chicken farming to others in their respective villages. Dr. Rafiqul Islam, Principal Scientist (Animal Reproduction) and In charge, Poultry Seed Project explained in detail and practically demonstrated to the trainees about floor preparation in deep litter housing system, feeding and therapeutic management of Vanaraja chicks at various age groups. He highlighted the importance of restricted feeding schedule of Vanaraja layers for optimising egg production and also demonstrated vaccination of chicks and adult birds including administration techniques of various oral medicines to Vanaraja chicks and adult birds in feed and water.  Dr. Islam practically demonstrated the techniques for maintenance of hygienic and bio-security measures in the farm premises for protecting the birds from various diseases. The participants have been encouraged and capacitated with the citation of success stories of many poultry farmers performing with Vanaraja chicken farming in the state. Dr. Ashish Yadav, Senior Scientist (Horticulture) deliberated upon the scope of the integrated vegetable and fruit production in conjunction with backyard poultry farming. He also demonstrated the technologies to the farmers for year round organic vegetable production under low cost plastic tunnel by protecting the plants from adverse climatic conditions as well as from insect, pests and diseases.             Dr. Raghavendra Singh, Senior Scientist (Agronomy) talked about the techniques of organic crop production to support the Vanaraja backyard poultry farming through supply of organic feed ingredients. He also demonstrated the technologies about the organic conservation agriculture practices for major field crop production in Sikkim including zero till technologies.             Sh. Shaon Kumar Das, Scientist (Soil Science) discussed about organic nutrient management for a fertile and healthy soil. He also talked about the production of bio char from weeds and waste plants.             Dr. P. K.  Pathak SMS (Animal Science), KVK, Ranipool explained the participants about the feeding management of birds for better growth and production with locally available feed ingredients and management techniques of the birds in backyard condition.             Mrs. Pallabi Phukan SMS (Agricultural Extension), KVK, Ranipool talked about the procedure for formation of self help groups (SHGs) for availing various government schemes and role of SHGs for strengthening rural economy through Vanaraja poultry farming. At the end, inputs like 50 nos. of Vanaraja day old chicks, water trough, electrolytes, essential vitamin supplement along with handouts about the rearing practices and a book written by Dr. H. K. Chettri entitled, “Kukhura Palan” was distributed to each participant.   Dr. Priya Chettri, Dr. Padam Lal Luitel, Mr. K. B. Basnett, and Mr. S. M. Kandwal, rendered their active help and cooperation for the smooth running of the program. (PIB) Read the full article
0 notes
christinaepilzauthor-blog · 8 years ago
Text
Foods the Romans brought to Britain
by Cindy Tomamichel The Roman Empire spanned a great deal of the known world in ancient times, acting as a conduit for the spread of Roman culture. After the invasion and occupation of AD 43-410, Britain would never be the same. For its people and the environment, the Romans brought new ideas and foods, many of which have become staples of culinary tradition. There are a variety of information sources by which a picture of the foods of Roman Britain may be reconstructed. There is the actual foodstuff itself, where food such as grains, nuts and bones may be preserved by charring or carbonisation such as during a fire. Preservation by waterlogging occurs within peat bogs and estuaries. Fossilised remnants may also be found in latrines and rubbish heaps, where minerals such as calcium have replaced the structure. Food was also buried in containers in the burial sites of wealthier individuals. Shrine offerings are also another source of food evidence. Food containers may also carry the imprint of their contents. Other sources include import and export evidence, such as amphorae for wine, oil or garum. Some written sources exist, even for such things as shopping lists, for instance the Vindolanda tablets "... bruised beans, two modii, twenty chickens, a hundred apples, if you can find nice ones, a hundred or two hundred eggs, if they are for sale there at a fair price. ... 8 sextarii of fish-sauce ... a modius of olives ... To ... slave of Verecundus." There is some evidence of Roman foods being imported to Britain well before the invasion. However, the invasion created multiple avenues of demand for Roman foods, which expanded the importation significantly. The Roman army was a major consumer, but also the desire to be seen as Roman saw a rise in demand for exotic imports. What in the late Iron Age was a trickle, soon turned to a flood of new foods available during the occupation. Romans also brought food related ideas. Firstly there was a need to produce food in Britain on the scale required to supply the army. This need, coupled with the Roman habits of building roads and towns soon changed the face of agriculture. From small holdings growing mostly for personal consumption, it changed to larger farms specialising in growing enough of a product for market. The spread of new foods worked a gradual path out from the towns to the surrounding countryside. In this way many new foods became established. New fruits and nuts included apple, cherry, plum, walnut, mulberries, medlars, and chestnuts. New vegetables were grown such as carrots, beets, garlic, onions, shallots, leeks, cabbages, peas, celery, turnips, radishes, and asparagus. Herbs were both medicinal and for cooking and teas, including poppy, black mustard, rosemary, thyme, garlic, bay, basil, borage and savoury mint. All these established and stayed popular even after the Romans left. Other foods were popular only during the occupation, or just didn't establish well, such as grapes, figs, pine nuts and olives. Another way in which plants may arrive is by stealth. The weed seeds are harvested and are within a bag of seed grain, or they are planted and the environment suits them too well and they escape and naturalise. Plants like this include ground elder, white mustard, alexanders, stinging nettles, greater celandine, and fennel. Grains play a major part in diet and also part of the stability of society. A poor harvest would mean cultural unrest, particularly if the invaders were seen to be consuming large amounts. Grains already in Britain were various types of wheat, barley and oats. With the Romans came both an increased demand and new technology for ploughing and agricultural tools. They also introduced rye, millet and spelt. With the development of a closed field system, cattle could be alternated with crops such as grains, pulses and vegetables, increasing productivity.
Baking ovens are a common feature of Roman fortifications. This is a loaf of bread from a bakery in Pompeii. (source: http://www.pompeii.org.uk/m.php/museo-pistrinum-di-soterico-pompei-it-117-m.htm)
Part of many affluent Roman households was a garden, and perhaps this was the start of the English love of gardens which has spread with them all over the world. A typical house layout had a central courtyard garden, and here decorative plants such as box, foxgloves, mulberries, lilies, violets, pansies and roses would have been grown.
Part of a household might have included animal husbandry areas. For those longing for a taste of home, a snail farm or "cochlea", would have been established, where imported Roman snails were raised and fattened. They were fed on milk and oats or spelt to purge and fatten them, then cooked in wine, with garum or garlic. Roman snails are still to be found in the UK. Hare gardens with semi domesticated rabbits also existed for fur, hides and supplies of meat. They also built enclosures to keep deer, as well as pigeon enclosures and kept chickens and guinea fowl.
Edible Snail - photo credit Fred Dawson via Visual Hunt /CC-BY-ND
Britain was already exporting beef before the invasion, and goats, sheep, chickens, pigs and deer were also being eaten. Pigeons, quail, geese, pheasant and guinea fowl were likely imported with the Romans. Ham in brine and bacon with their good keeping qualities were important for soldiers on the march.
Amongst the many cultural changes the Romans brought was the change in eating habits. While in the more remote rural areas people probably continued eating stews, roast meat and porridges, in the towns more people adopted Roman dining habits. These are familiar to us today as the three meal arrangement, with breakfast being quite small, a moderate lunch and a larger dinner as evening was for entertaining. Fast food was also a Roman invention, with many small bakeries and food places available for those who could not cook at home, serving things like kebabs and burgers. Bath houses were also popular social hubs were snacks could be purchased.
However diet varied with social status, location and job. Many remote Britons would have continued eating their normal food, perhaps adding some new vegetables, herbs or grains to the mix. The elite would be the major consumers of the imported foods such as wines from Gaul (France), dried dates and olives.
The soldiers had to buy their own food, and had a routine for doing so. They often had their own bread ovens, herds of cows, pigs and managed their own purchase of grains and vegetables. A soldier's diet was also often supplemented by food sent from home, or by hunting local animals such as boar and deer.
Imported food consisted of things that would not grow or was not available in sufficient quantities. This included dates, almonds, olives and olive oil, wine, pine cones and kernels, fermented fish sauce (liquamen or garum), pepper, ginger and cinnamon.
After the Romans left Britain in AD 410, many aspects of their culture vanished. However, the hardier or more popular of the introduced plants and animals survived, becoming an integral part of the landscape.
Recipes
The main reference for Roman food is the cookbook of Apicius, a Roman epicure of around AD 100. The book is full of recipes for main meals, and often has several variations on a dish or ingredient. While many of the ingredients are probably not to today's tastes, many of the casserole and vegetable dishes sound interesting. Unfortunately none of the bread recipes he probably had are included.
Milk Fed Snails (Cochleas lacte pastas)–Apicius
After being purged and cleaned, the snails can be fried in oil and served with a wine sauce. Or they could be fried, then made into a soup with broth, adding pepper and cumin.
Vegetable and Brain Pudding (Patina frisilis)- Apicius
Take cooked and mashed vegetables and brains and mash to a fine paste. Add eggs, broth, and wine and place in an oiled baking dish. Bake and sprinkle with pepper when done. 
Libum - Serves 2 (A type of cheesecake) 
10 oz ricotta cheese. 1 egg. 21/2 oz plain flour. Runny honey.
Beat the cheese with the egg and add the sieved flour very slowly and gently. Flour your hands and pat mixture into a ball and place it on a bay leaf on a baking tray. Place in moderate oven (180C/400ºF) until set and slightly risen. Place cake on serving plate and score the top with a cross. Pour plenty of warmed runny honey over the cross and serve immediately. This is similar to a Greek cheesecake, which uses cottage cheese instead of ricotta. (Source: Sally Grainger The Classical Cookbook, published by British Museum Press.)
(Note: a variety of academic and website reference sources were used for this article, please contact the author if details are required.)
~~~~~~~~~~
Cindy Tomamichel is a writer of action adventure romance novels, spanning time travel, sci fi, fantasy, paranormal, and sword and sorcery genres. They all have something in common – swordfights! The heroines don't wait to be rescued, and the heroes earn that title the hard way. 
Her first book, Druid's Portal: The First Journey will be out with Soul Mate Publishing in 2017. On Amazon May 17th. An action adventure time travel with a touch of romance set in Roman Britain around Hadrian's Wall.
A portal closed for 2,000 years.
An ancient religion twisted by modern greed.
A love that crosses the centuries.
Contact Cindy on Website: www.cindytomamichel.com Facebook: https://www.facebook.com/CindyTomamichelAuthor/ Twitter: https://twitter.com/CindyTomamichel Goodreads: https://www.goodreads.com/author/show/16194822.Cindy_Tomamichel Google+: https://plus.google.com/+CindyTomamichel
Hat Tip To: English Historical Fiction Authors
0 notes