Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Love You Pillow

Componenten en benodigdheden

Arduino MKR IoT-bundel
× 1

Apps en online services

Telegram

Over dit project

Opmerking:deze tutorial kan verouderd zijn, ga naar hier voor een meer actuele versie.

We weten allemaal dat het moeilijk kan zijn om zonder die speciale persoon in je leven te zijn, maar wat als je liefde en genegenheid op afstand via internet zou kunnen sturen door gewoon een kussen te knuffelen?

Nu kunnen we niet echt knuffels sturen... maar wat we wel kunnen sturen is een lieve emoji via een berichten-app, geactiveerd doordat je een kussen een knuffel geeft.

Als je het I Love You-kussen knuffelt je hoort het geluid van een hartslag die uit de zoemer binnenin komt. Afhankelijk van de lengte van je knuffel, wordt er een andere emoji verzonden van een Telegram Bot naar de chat die je kiest.

Blijf in contact met je geliefde met dit knuffelbare apparaat!

In een notendop

In dit experiment zullen we aluminiumfolie gebruiken om een ​​doe-het-zelf capacitieve sensor te maken die zal worden gebruikt om knuffels te detecteren.

Om ons knuffel-verzendapparaat te maken, hebben we de volgende componenten nodig:

  • Zoemer
  • Aluminiumfolie
  • 1 weerstand 5M ohm
  • Broodplank
  • Draden

Leerdoelen

  • Introductie van Telegram Bots
  • Capacitieve sensoren beheren
  • Telegram Bots en groepschats #ProTips
  • Praktische tips voor wifi #ProTips

Pro-tips zijn nuttige maar niet strikt noodzakelijke stappen die een extra laag complexiteit aan het project toevoegen.

Meer weten?

Deze tutorial maakt deel uit van een reeks experimenten die je vertrouwd maken met de MKR1000 en IoT. Alle experimenten kunnen worden gebouwd met behulp van de componenten in de MKR IoT-bundel.

  • Ik hou van je kussen
  • Puzzeldoos
  • Pavlovs kat
  • De nerd
  • Plantencommunicator

Introductie van Telegram Bots

Telegram is een populaire berichten-app voor zowel mobiel als desktop. Behalve dat we met onze vrienden kunnen chatten, kunnen we ook handige en krachtige chatbots maken!

Een chatbot is niets anders dan een contact waarmee je kunt chatten, maar in plaats daarvan een persoon erachter, is er een machine die reageert op de code die je hebt geschreven.

De TelegramBot-bibliotheek voor Arduino biedt ons een gemakkelijke manier om de logica achter de chatbot te implementeren.

Maak je bot

Een bot maken is zo eenvoudig!

Volg gewoon deze paar eenvoudige stappen of bekijk de documentatie hier.

Zet het bord op

Zorg er eerst voor dat we alle benodigde bibliotheken hebben.

Hier is de lijst met alle bibliotheken die we nodig hebben:

  • WiFi101
  • TelegramBot
  • ArduinoJson
  • CapacitieveSensor

U kunt ze eenvoudig installeren volgens deze eenvoudige handleiding.

Om de API van Telegram te kunnen gebruiken, moeten we eerst de certificaten uploaden naar de MKR1000. Dit is van toepassing op de meeste online services en API's!

Upload het Firmware Updater-voorbeeld uit de WiFi101-bibliotheek en voeg api.telegram.org toe aan de domeinen.

Als je de Arduino Web Editor gebruikt, is deze functie nog niet geïmplementeerd en moet je dit doen via de Arduino Desktop-applicatie.

Laat de magie gebeuren!

Open het EchoBot-voorbeeld uit de TelegramBot-bibliotheek, vul uw WiFi-inloggegevens en het API-token in dat u van de BotFather hebt ontvangen en upload!

Je hebt zojuist een bot gemaakt die al je berichten herhaalt.

EchoBot en Emoji

Emoji's zijn overal! We zullen ze gebruiken om onze liefde en knuffels te sturen. Het gebruik van het EchoBot-voorbeeld is een gemakkelijke manier om te zien hoe de bots je emoji lezen.

Helaas is de manier waarop de bot de emoji ontvangt niet dezelfde als waarmee deze is verzonden. Om een ​​emoji te sturen, moeten we UNICODE . gebruiken tekens.

Om bijvoorbeeld een emoji met een hartje te sturen, gebruiken we:\U00002764

Je kunt de volledige lijst met unicode-emoji-codes hier bekijken. Om een ​​bot te maken die antwoordt op een hartemoji met een andere hartemoji, gebruiken we een code zoals deze:

void loop() { bericht m =bot.getUpdates(); // Lees nieuwe berichten if (m.chat_id!=0){ // Controleer of er updates zijn Serial.println(m.text); // druk het ontvangen bericht af als (m.text =="u2764ufe0f") { // controleer of het een emoji-hart heeft ontvangen bot.sendMessage (m.chat_id, "\ U00002764"); // Reageer op dezelfde chat met de emoji van het hart } } }  

Het resultaat is:

Capacitieve sensor

Genoeg met Telegram, laten we beginnen met het bouwen van onze doe-het-zelf capacitieve sensor!

De CapacitiveSensor-bibliotheek verandert twee of meer Arduino-pinnen in een capacitieve sensor, die de elektrische capaciteit van het menselijk lichaam kan detecteren. Het enige dat de sensorconfiguratie nodig heeft, is een weerstand van gemiddelde tot hoge waarde en een stuk aluminiumfolie.

Op zijn meest gevoelige punt begint de sensor een hand of lichaam op enkele centimeters afstand van de sensor en door verschillende soorten materialen te detecteren . We zullen onze sensor in het kussen verbergen!

Upload de voorbeeldschets, sluit de draden aan en bekijk het resultaat op de console:

#include  CapacitiveSensor foil =CapacitiveSensor(5,4); // 10M weerstand tussen pinnen 5 &4, pin 4 is sensorpin, voeg een draad toe en/of foilvoid setup() { foil.set_CS_AutocaL_Millis(0xFFFFFFFF); // zet automatisch kalibreren uit Serial.begin (9600); } void loop() { lange start =millis(); lange sensor_waarde =foil.capacitiveSensor (30); Serial.print(millis() - start); // controleer de prestaties in milliseconden Serial.print ("\t"); // tabteken voor debug windown spacing Serial.print (sensor_value); // print sensor output Serial.println ("\t"); // print sensor output 3 vertraging (500); // willekeurige vertraging om gegevens te beperken tot seriële poort }  

Bekabeling en resultaten

We gebruiken sensor_value als een drempel om knuffels te detecteren!

De hartslag

Hoe langer je knuffelt, hoe meer hartslagen je hoort. Hoe meer het hart klopt, hoe meer liefde je stuurt (en ook andere emoji).

We zullen het geluid van een hartslag nabootsen met behulp van een zoemer en een paar eenvoudige regels code.

int Zoemer =8; // Pin bevestigd aan de zoemer void setup(){} void loop(){ HeartBeat(); vertraging (1000); } void HeartBeat(){ tone(Zoemer, 31, 200); // toon (Pin, Notitie, Duur); vertraging (200); toon (zoemer, 31, 400); vertraging (200); geen toon (zoemer); vertraging (1000); }  

Voor een complexer gebruik van de zoemer en de toonfunctie, bekijk de voorbeelden van het vervolgkeuzemenu en zoek naar Digital> ToneMelody

#ProTip:Chat-id en Groep-chat

Om berichten te kunnen versturen heeft een bot een chat-id nodig.

De chat-ID is de unieke identificatie van een chat tussen iemand en een bot. Om de bot berichten naar een specifieke persoon te laten sturen, moet die persoon eerst de bot sms'en en de chat-id van die specifieke chat opslaan.

In dit project zal de bot alleen antwoorden op de allerlaatste persoon die het sms't, ongeacht wie dat was.

De bots zijn openbaar, iedereen kan een Bot sms'en!

Als je de bot in een groepschat wilt opnemen, moet je de privacymodus uitschakelen zodat de bot alle berichten kan lezen, anders zou hij alleen opdrachten kunnen detecteren die beginnen met /:

#ProTip:beste praktijken voor wifi

WiFi kan lastig zijn. Soms wordt het gewoon een paar seconden uitgeschakeld zonder blijkbaar helemaal geen reden. Dit kan een probleem zijn voor je Arduino, aangezien we de wifi-verbindingsfunctie meestal alleen aan het begin van de schets uitvoeren.

Online services kunnen ook lastig zijn. Wanneer de Arduino een verzoek naar een server stuurt (Telegram in dit geval), wacht hij op een antwoord. Om honderden redenen kan een antwoord uitblijven, waardoor de Arduino in een oneindige lus blijft.

Om uw project stabieler te maken, kunt u een waakhond toevoegen.

Een waakhond is een timer die periodiek moet worden bijgewerkt, anders wordt het bord opnieuw opgestart.

U kunt deze twee bibliotheken gebruiken om een ​​waakhond aan uw project toe te voegen:

  • Adafruit SleepyDog
  • Adafruit ASF Core // moet handmatig worden gedownload en geïnstalleerd vanaf Github

Het EchoBot-voorbeeld ziet er dan als volgt uit:

#include  #include  #include  #include  // Initialiseer wifi-verbinding met de router char ssid[] ="xxxx"; // uw netwerk-SSID (naam) char pass [] ="yyyy"; // uw netwerksleutel // Initialiseer Telegram BOT const char BotToken [] ="xxxx"; WiFiSSLClient-client; TelegramBot-bot (BotToken, klant); void setup() { Serial.begin(115200); while (!Serial) {} vertraging(3000); // probeer verbinding te maken met wifi-netwerk:Serial.print ("Verbinden met wifi:"); Serieel.println(ssid); while (WiFi.begin(ssid, pass) !=WL_CONNECTED) { Serial.print("."); vertraging (500); } Serieel.println(""); Serial.println("WiFi verbonden"); bot.begin(); Waakhond inschakelen (10000); // zet de timer op 10 sec } void loop () { Watchdog.reset (); // als deze functie niet binnen 10 seconden wordt aangeroepen, zal het bord zichzelf resetten bericht m =bot.getUpdates(); // Lees nieuwe berichten als (m.chat_id!=0){ // Controleert of er updates zijn Serial.println(m.text); bot.sendMessage (m.chat_id, m.text); // Beantwoord dezelfde chat met dezelfde tekst } else { Serial.println("geen nieuw bericht"); } }  

Code

Volledige schets

Schema's


Productieproces

  1. 9 stappen om een ​​mes te smeden:alles wat u moet weten
  2. Hoe plan je een stuklijst (BOM)?
  3. Waar moet je bouwen?
  4. Top 3 manieren om onderdelen te markeren die u moet kennen
  5. Wat is Micrometer? | Hoe lees je een micrometer af?
  6. De horizontale bewerkingsapparatuur die u mogelijk nodig heeft:
  7. Waarom heb je een mechanische ijzerbewerker nodig?
  8. Allerlei ontbraameenheden voor u:
  9. Heb je gehoord van wit gietijzer?
  10. Alles wat u moet weten over Plunge EDM
  11. Waarom heb je een kleine servopers nodig?